﻿&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	БлюдоОбъект = ЭтаФорма.РеквизитФормыВЗначение("Объект");
	
	ДвоичныеДанныеИзображения = БлюдоОбъект.Изображение.Получить();
	Если Не ДвоичныеДанныеИзображения = Неопределено Тогда
		ЭтаФорма.Изображение = ПоместитьВоВременноеХранилище(
								ДвоичныеДанныеИзображения, 
								ЭтаФорма.УникальныйИдентификатор);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, 
							ТекстПредупреждения, СтандартнаяОбработка)
	
	Если ЗначениеЗаполнено(ЭтаФорма.Изображение) Тогда
		УдалитьИзВременногоХранилища(ЭтаФорма.Изображение);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьИзображение(Команда)
	
	ДВФ = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	ДВФ.Фильтр = "Формат JPG (*.jpg)|*.jpg";
	
	Если ДВФ.Выбрать() Тогда
		ДвоичныеДанныеИзображения = Новый ДвоичныеДанные(ДВФ.ПолноеИмяФайла);
		
		Если ЗначениеЗаполнено(ЭтаФорма.Изображение) Тогда
			УдалитьИзВременногоХранилища(ЭтаФорма.Изображение);
		КонецЕсли;
		
		ЭтаФорма.Изображение = ПоместитьВоВременноеХранилище(
								ДвоичныеДанныеИзображения, 
								ЭтаФорма.УникальныйИдентификатор);
		ЭтаФорма.Модифицированность = Истина;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура УдалитьИзображение(Команда)
	
	Если ЗначениеЗаполнено(ЭтаФорма.Изображение) Тогда
		УдалитьИзВременногоХранилища(ЭтаФорма.Изображение);
		ЭтаФорма.Изображение = "";
		ЭтаФорма.Модифицированность = Истина;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура СохранитьИзображение(Команда)
	
	ДВФ = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
	ДВФ.Расширение = "jpg";
	ДВФ.Фильтр = "Формат JPG (*.jpg)|*.jpg";
	Если ДВФ.Выбрать() Тогда
		ДвоичныеДанныеИзображения = ПолучитьИзВременногоХранилища(ЭтаФорма.Изображение);
		ДвоичныеДанныеИзображения.Записать(ДВФ.ПолноеИмяФайла);
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	ДвоичныеДанныеИзображения = Неопределено;
	Если ЗначениеЗаполнено(ЭтаФорма.Изображение) Тогда
		ДвоичныеДанныеИзображения = ПолучитьИзВременногоХранилища(ЭтаФорма.Изображение);
	КонецЕсли;
	
	Если Не ДвоичныеДанныеИзображения = ТекущийОбъект.Изображение.Получить() Тогда
		ХранилищеИзображения = Новый ХранилищеЗначения(ДвоичныеДанныеИзображения, 
														Новый СжатиеДанных(6));
														
		ТекущийОбъект.Изображение = ?(ДвоичныеДанныеИзображения = Неопределено, 
										Неопределено, 
										ХранилищеИзображения);
	КонецЕсли;
	
КонецПроцедуры
